package com.good.domain.Utils;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * 星座计算类
 * 1、白羊座。3月21日至4月19日；
 * 2、金牛座。4月20日至5月20日；
 * 3、双子座。5月21日至6月21日；
 * 4、巨蟹座。6月22日至7月22日；
 * 5、狮子座。7月23日至8月22日；
 * 6、处女座。8月23日至9月22日；
 * 7、天秤座。9月23日至10月23日；
 * 8、天蝎座。10月24日至11月22日；
 * 9、射手座。11月23日至12月21日；
 * 10、摩羯座。12月22日至1月19日；
 * 11、水瓶座。1月20日至2月18日；
 * 12、双鱼座。2月19日至3月20日。
 * @author duyf
 */
public class ConstellationUtil {

    /**
     * 根据生日 获取星座
     *
     * @param birthday 生日
     * @return 星座
     */
    public static String getConstellation(LocalDateTime birthday) {
        String constellation;
        if (birthday == null) {
            return null;
        }
        int month = Integer.parseInt(DateTimeFormatter.ofPattern("MM").format(birthday));
        int day = Integer.parseInt(DateTimeFormatter.ofPattern("dd").format(birthday));

        switch (month) {
            case 1:
                constellation = day > 19 ? "水瓶座" : "魔羯座";
                break;
            case 2:
                constellation = day > 18 ? "双鱼座" : "水瓶座";
                break;
            case 3:
                constellation = day > 20 ? "白羊座" : "双鱼座";
                break;
            case 4:
                constellation = day > 19 ? "金牛座" : "白羊座";
                break;
            case 5:
                constellation = day > 20 ? "双子座" : "金牛座";
                break;
            case 6:
                constellation = day > 21 ? "巨蟹座" : "双子座";
                break;
            case 7:
                constellation = day > 22 ? "狮子座" : "巨蟹座";
                break;
            case 8:
                constellation = day > 22 ? "处女座" : "狮子座";
                break;
            case 9:
                constellation = day > 22 ? "天秤座" : "处女座";
                break;
            case 10:
                constellation = day > 23 ? "天蝎座" : "天秤座";
                break;
            case 11:
                constellation = day > 22 ? "射手座" : "天蝎座";
                break;
            case 12:
                constellation = day > 21 ? "魔羯座" : "射手座";
                break;
            default:
                constellation = null;
        }
        return constellation;
    }
}
